home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 2
/
Gold Medal Software Volume 2 (Gold Medal) (1994).iso
/
utils
/
ffg155.arj
/
FFG.DOC
< prev
next >
Wrap
Text File
|
1993-12-10
|
57KB
|
1,617 lines
File Finder/Grouper (FFG)
Version 1.55
Shareware Manual
Copyright 1992-1993 Thomas G. Vavoso
President, EnGamma
All Rights Reserved
2407 Cameron Mills Rd.
Alexandria, Va. 22302-3302 USA
Telephone: (703)548-6869
Compuserve: 71674,1747
GEnie: T. Vavoso
Internet: T.Vavoso@genie.geis.com
File Finder/Grouper (FFG) performs three basic functions:
1) Searches disks/archive files for files based on flexible
user-specified search criteria (e.g., name,
date/time/size/Day-of-week ranges, text contents,
attributes...).
2) Groups files for processing
3) Groups files for building databases of files
If you think you already have a utility program that fills these
functions, try the DEMO programs, examine the EXAMPLES.FFG file,
and read the section "FFG Compared to Other File Finders", before
you decide to put FFG aside.
If you want to start using FFG right away read the "Quick Start"
section below. Otherwise, skip to "Introduction".
Be sure to read the "Shareware" notice on the next page. The
registration cost for a single-user license and two years of
updates is currently $10 plus a small shipping/processing fee for
updates. See the FFG.REG file for details.
This manual is available in WordPerfect 5.1/5.2 format to
registered users upon request.
File Finder/Grouper 1 (c) EnGamma
Shareware
Shareware distribution gives users a chance to try software
before buying it. If you try a shareware program and continue
using it, you are expected to register. Individual programs
differ on details -- some request registration while others
require it, some specify a maximum trial period. With
registration, you get anything from the simple right to continue
using the software to an updated program with printed manual.
Copyright laws apply to both shareware and commercial
software, and the copyright holder retains all rights, with a few
specific exceptions as stated below. Shareware authors are
accomplished programmers, just like commercial authors, and the
programs are of comparable quality. (In both cases, there are
good programs and bad ones!) The main difference is in the
method of distribution. The author specifically grants the right
to copy and distribute the software, either to all and sundry or
to a specific group. For example, some authors require written
permission before a commercial disk vendor may copy their
shareware.
Shareware is a distribution method, not a type of software.
You should find software that suits your needs and pocketbook,
whether it's commercial or shareware. The shareware system makes
fitting your needs easier, because you can try before you buy.
And because the overhead is low, prices are low also. Shareware
has the ultimate money-back guarantee -- if you don't use the
product, you don't pay for it.
FFG is a copyrighted shareware program by Thomas G. Vavoso,
President, EnGamma. The evaluation edition of FFG is offered at
no charge to any potential user for evaluation, but after a brief
evaluation period users must register. Feel free to share the
evaluation edition with your friends and associates, but please
do not give it away altered or as part of another system. The
essence of "user-supported" software is to provide personal
computer users with quality software without high prices, and yet
to provide incentive for programmers to continue to develop new
products.
Disclaimer of Warranty
Users of FFG must accept this disclaimer of warranty: FFG is
supplied as-is. The author disclaims all warranties, expressed
or implied, including, without limitation, the warranties of
merchantability and of fitness for any purpose. The author
assumes no liability for damages, direct or consequential, which
may result from the use of FFG.
File Finder/Grouper 2 (c) EnGamma
Quick Start
1. Demonstrations - The quickest way to become familiar with FFG
or to get ideas for possible uses is run the DEMO program
(DEMO.BAT). Go to the disk and directory with the demo batch
files in it and enter:
demo
2. Examples - See the file "EXAMPLES.FFG" included in the FFG
package for a concise listing of many examples.
3. Command Syntax
USAGE: FFG [DriveSpec:][PathSpec]NameMask[,NameMask2...][\] [options]
"NameMask" can contain one or more extended DOS wild card
characters to specify the file name:"
* = matches any string of zero or more characters"
? = matches any one character
"DriveSpec" can be more than a simple drive letter:
- If a '*' is substituted for a drive letter, all but A: & B:
are searched and redundant logical (substitute) drives are
skipped.
- Multiple drives can be explicitly specified (e.g., A-D:,
BDF:).
- Drives listed after the '*' are excluded (e.g., *M: searches
all but M:).
- To search for directories instead of files, put a '\' after
the NameMask
- During the search, pressing the following keys have the
following effect:
<ESC> will stop the search.
<G> will go to (Change Dir) the last found file.
<S> will skip the current drive.
<B> will cause FFG to beep when done searching.
Pressing any other key will pause the search operation.
- Either '-' or '/' are acceptable command line option switches.
- Options may be in any order, before or after the Search Mask.
- There should be no spaces between option switches and their
parameters.
4. Built-in Help/Examples - To get a listing of options and
command syntax, at the DOS prompt enter:
ffg - Usage, help, examples, options
ffg /? - Command-line option help
File Finder/Grouper 3 (c) EnGamma
ffg /?n - Help for option 'n'; (e.g., /?d is help for
date option)
5. Finding a File on the Current Drive - To find a file anywhere
on the current drive enter:
FFG filename.ext
where "filename.ext" is the name of the file you want to find.
6. Finding a File on All Hard Drives - To find a file anywhere
on hard drives connected to your system enter:
FFG *:filename.ext
where the '*' is interpreted to mean all non-logical disk
drives except A: and B:, which are assumed to be floppy
drives.
7. Finding a File on All Drives (including floppies) - To find a
file anywhere on the system drives enter:
ffg ab*:filename.ext
where "ab*" is interpreted to mean search drives A: and B: plus
all hard drives.
8. Searching Inside Archive Files (e.g., .ZIP files) - To search
all drives and inside all archive files on those drives type:
ffg *:filename.ext /z
File Finder/Grouper 4 (c) EnGamma
Introduction
To get a quick idea of FFG's capabilities run the batch files
included in DEMOBAT.ZIP or scan through the examples in
EXAMPLES.FFG.
Here is a basic list of features:
- Perform filename searches using extended DOS wild card
characters * and ?. For example you can find all files with
"doc" anywhere in the name. This search is not possible using
standard DOS wildcard conventions.
- Easily search all disk drives or only selected drives.
- Search for files or exclude files based on file name, date,
time, size, day-of-week, attributes (hidden/system/read
only/archive), and occurrence of text (including control
codes) within the file.
- Searches popular archive/compressed file formats such as those
created with PKZip.
- Can execute an arbitrary DOS command for each found file.
- Versatile and Customizable Output Formats:
- Standard columnar output, which is a basic fixed field
output of the various file information items:
FILENAME.EXT 12345 1/01/92 23:59 HSRA C:\DIRECT\SUBDIR
- Packed format, which allows formation of list files for
subsequent processing (e.g., PKZip @file):
C:\DIRECT\SUBDIR\FILENAME.EXT
- Comma delimited ASCII database file format, which allows
databases of found files to be built:
"FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIRECT\SUBDIR\"
- Batch file processing format, which allows sophisticated
manipulation of found files as a group:
%1 C:\PATH\FILENAME.EXT %2 %3 %4 %5 %6 %7 %8 %9
Within each of the above basic format types the user can
further customize the output. (See the detailed reference for
the /f option.)
- See the section "FFG Compared to Other File Finders".
File Finder/Grouper 5 (c) EnGamma
FFG Compared to Other File Finders
File Finder/Grouper (FFG) performs functions similar to those
found in other utility programs, but here are some FFG features
that some other file finders lack:
1. FFG uses the DOS wildcard characters '*' and '?' but they
have extended function over the DOS counterparts. The
extended functionality permits you to search for strings of
characters that appear anywhere in the file name.
2. FFG can search for multiple file specifications in a single
pass, such as find all BAT, COM and EXE files.
3. FFG permits you to concisely specify multiple file name
search masks such as "*[ZIP,ARC,ARJ,LHA]*.[COM,EXE]" to find
all archiving programs.
4. FFG can search all disk drives or selected disk drives.
5. FFG can search inside of archive files (ZIP, ARC, ARJ, LZH).
(FFG also searches inside XEQ COM library files).
6. FFG can execute and arbitrary DOS command for each file
found with or without a user confirmation before execution.
7. FFG finds hidden files and searches hidden directories.
8. FFG searches inside directories with name extensions (e.g.,
THISISMY.DIR). Some file finders do not search these
directories.
9. FFG can move to the disk and directory of the found file (/g
option).
10. FFG can search for directories instead of files simply by
appending a backslash '\' to the search name.
11. FFG can search by a date range, time range, size range, or
day-of-week range using intuitive syntax to specify these
criteria.
12. FFG can search by the file attributes or combination of
attributes, such as finding all Hidden Read-Only files.
13. FFG can find files based on the day of the week (i.e., Sun -
Sat) they were modified/created.
14. FFG can find files based on whether or not the file contains
one or more text/ASCII-code strings.
15. FFG permits you to exclude certain files base on name, date,
File Finder/Grouper 6 (c) EnGamma
time, size, attributes, day-of-week criteria, text contents.
16. FFG can search for files by date relative to today, such as
all files modified/created 7 to 14 days ago.
17. FFG can search for files relative to the current time of
day, such as all files modified/created within the last ten
minutes.
18. The asterisk '*' can be used as a wildcard in date and time
criteria, such as /d9/*/93 for all September 1993 files and
/t13:* for all 1:00pm - 1:59pm files.
19. Current month (M), day (D), year (Y) can be specified in
date criteria such as 1/1/Y-6/30/Y, M/D/Y (today)
20. Current hours (H), minutes (M), seconds (S) can be specified
in time criteria such as H:M:S (now).
21. Partial dates and times are interpreted, such as 9/93 ->
9/*/93, 5/1 -> 5/1/Y (Y = current year), 92-93 -> all 1992-
1993 files, 9 -> 9:00:00am.
22. Multiple date, time, size, day-of-week, attribute criteria
can be specified, which are combined in a logical AND or OR
depending on how they are specified.
23. FFG lets you pause (press any key) or interrupt (press
<ESC>) the search operation at any time.
24. FFG can be used to produce database files of its output
(ASCII comma-delimited files)(/f, option)
25. FFG provides useful default output format options but
permits extensive user customization of the output format.
26. FFG can be used to produce output as DOS batch files (.BAT)
with DOS replaceable parameters (%1 through %9). The batch
file can then be used to execute a arbitrary command against
the group of files such as copy, back up, archive, delete,
move, edit...). The power and flexibility of this feature
is limited only by your imagination. Although some other
finders have similar capability, they do not have the same
flexibility.
27. By default, when FFG is searching all disk drives, it skips
disk drives that are logical aliases of other physical
drives that have already been searched. This avoids reports
of multiple copies of a file when in fact there is only one
physical copy of the file.
28. FFG lets you use 43- and 50-line video modes on EGA/VGA
systems so you can see more on the screen.
File Finder/Grouper 7 (c) EnGamma
File Finder/Grouper 8 (c) EnGamma
Usage and Examples
FFG [DriveSpec:][PathSpec]NameMask[,NameMask2...][\] [options]
FFG is currently not case sensitive. However, as features are
added in future releases case may be used to distinguish options.
Therefore, use of lower case is recommended. In many of the
examples provided in this manual mixed upper and lower case is
used for clarity only.
DriveSpec tells FFG which drives to search. If DriveSpec is not
specified the current disk is searched. A simple DOS drive
letter designation can be specified (e.g., C:) or a list of
drives can be specified (e.g., ABC:). Also, a '*' can be used to
mean all drives except A: and B: and logical substitute drives.
When '*' is used, it can be combined with an explicit search list
(e.g., ab*:); the drives that are explicitly listed will be
searched first. If you wish to specify "all drives but..." then
list the drives to exclude after the '*' (e.g., *cd). Finally, a
range of drives may be specified (e.g., a-z:). If any drives
that are explicitly specified cannot be accessed, such as empty
floppy drives, FFG reports them as inaccessible. See the
following DriveSpec examples.
PathSpec tells FFG which directory to use as the search starting
point. The specified directory and all descendent subdirectories
will be searched unless the NO RECURSION option (/r) is
specified. See the following PathSpec examples.
NameMask gives FFG a file name pattern to look for. Multiple
name masks can be specified by separating them with a comma (',')
sign. NameMask can use DOS wildcard characters '*' and '?', but
they have extended functions. The '*' will match zero or more
characters and the '?' will match exactly one character. The
period that separates the file first name and the filename
extension is treated as any other character in the name. If a
terminating backslash is appended to the list of NameMasks, FFG
will search for directories in lieu of files. See the following
NameMask examples.
NameMasks can also include alternative patterns to concisely
specify multiple masks that have common elements. For example,
rather than specify "*.BAT,*.COM,*.EXE", you can use
"*.[BAT,COM,EXE]". The bracketed contain different possible
alternatives for that part of the NameMask. Brackets can be
nested. Here are two more complicated examples:
File Finder/Grouper 9 (c) EnGamma
1. Let's say you want to see all files which have names that
are variants of "CONFIG" or an abbreviation of it. Here's how
you might specify it: "*C[[O,]N,]F[I,]G*",
which is equivalent to specifying:
"*CONFIG*,*CONFG*,*CNFIG*,*CNFG*,*CFIG*,*CFG*"
2. Let's say you want a listing of all archiving programs,
including batch files that perform and archiving function.
Here's how you could specify it:
"*[ZIP,ARC,ARJ,LHA,PAK,ZOO]*.[EXE,COM,BAT]"
The above is equivalent to specifying 18 separate NameMasks:
"*ZIP*.EXE,*ZIP*.COM,*ZIP*.BAT,...,*ZOO*.COM,*ZOO*.BAT"
NOTE: Slashes can be used instead of commas as in
"*.[BAT/COM/EXE]". This permits a NameMask to be passed
to FFG as a parameter to a batch file. This would not
otherwise be possible using commas because DOS considers
the comma to be a batch file command-line argument
delimiter.
Drive Specifier (DriveSpec) Examples:
These examples illustrate the different ways to specify which
disk drives should searched.
ffg filename - Searches current drive
ffg c:filename - Searches drive C:
ffg *:filename - Searches all drives but A:, B:, and logical
substitute drives.
ffg ab*:filename - Searches all drives but logical substitute
drives
ffg a-z:filename - Searches all drives
ffg ec*:filename - Searches E: then C: then all other non-
logical drives but floppies
ffg *c:filename - Searches all non-logical drives but C: and
floppies
ffg d*m-z:filename - Searches D: then all non-logical drives
except M: through Z:
File Finder/Grouper 10 (c) EnGamma
File Path Specifier (PathSpec) Examples:
These examples illustrate the different ways to specify the
directory where the search should start.
ffg filename - Searches from root directory
ffg \filename - Searches from root directory
ffg \DOS\filename - Searches from \DOS directory
ffg .\filename - Searches from current directory
ffg ..\filename - Searches from parent of current directory
ffg \filename /r - Searches only the root directory, no
subdirectories
File Name Mask (NameMask) Examples:
These examples illustrate the different ways to search based on
the file name.
ffg *.* - Searches for all files
ffg * - Searches for all files (identical to *.*)
ffg *\ - Searches for all directories
ffg *bat - All files ending in 'BAT' (Finds: BALLBAT,
WOMBAT, AUTOEXEC.BAT...)
ffg *.bat - All files with a '.BAT' extension. (Finds:
BALL.BAT but will NOT find BALLBAT)
ffg *read*me* - All files with 'read' anywhere in name
followed by 'me' (Finds: READ.ME, PLS-
READ.ME, README, README.COM, READU.NME,
YOUREAD.ME)
ffg *help*,*hlp* or
ffg *h[e,]lp* - All files with 'help' or 'hlp' anywhere in
the name. (Finds: WINHELP.EXE, SETUP.HLP,
PRINTHLP.EXE...)
ffg *c*f*g* - All files with 'c', 'f', and 'g' in order
in name. (Finds: CONFIG.SYS, MIDIMAP.CFG,
CFGSAVE.DLL, MYCFG.DAT, MYCONFG.FIL...)
ffg *. - Finds extensionless files
ffg ????.* - Finds files with exactly four characters in
File Finder/Grouper 11 (c) EnGamma
first name. (Finds: DATA.IN, DATA.OUT,
TASM.EXE, TEST...; Doesn't find: TEST1,
TST.DAT...)
ffg *bat?* - Finds files with 'BAT' anywhere in name but
at the end. (Finds: BATLIB.COM, MYBAT.DAT,
BALLBATS...; Doesn't find: BALLBAT,
AUTOEXEC.BAT)
ffg ?????? - Finds all files having exactly 6 character
names, including the period if the file has
an extension. (Finds: SCRAPS, GO.BAT,
SAVE.C)
ffg * /x*.bat - Finds all files but DOS batch files (.BAT)
ffg *win*\ - Searches for all directories with 'WIN'
anywhere in the directory name
ffg *arc*.[com,exe] - Search for all 'arc' programs
File Finder/Grouper 12 (c) EnGamma
Alphabetical Listing of Command Line Options/Switches
Quick Reference:
Option Switch Function
/a Attributes of File
/b Beep when file found, prompted, and/or done
/d Date of File
/e Execute Command for each find
/f Format of Output
/g Go to directory
/h Hidden directories
/p Page at a time
/q Quiet/no screen output
/r Recursion (subdirectory search)
/s Size of file
/t Time of file
/v Video mode # of lines
/x eXclude Files
/z ZIP and other archive file search
/1 Find only 1 file
/$ Text/code string within file
File Finder/Grouper 13 (c) EnGamma
Options - Detailed Reference:
/a Attributes of File
/aAttrMask[[,|']AttrMask...] - include only files matching
specified attributes
AttrMask = is a string composed of H,S,R,A,'.'
H = hidden attribute set.
S = system attribute set.
R = read-only attribute set.
A = archive attributes set.
! = before one of the above, it means not set
. = "specified attributes period"; unspecified attributes
must not be set; The period must be at the end of the
string, e.g. /aHR. = hidden AND read only files with no
other attributes set.
Attribute Examples
/aR - Read-only files
/aH - Hidden files
/a!S - All but System files
/aA - Files with Archive bit set
/aHR - Files that are both hidden and read-
only
/aHR. - Hidden&Read-only files with no other
attributes set
/aH!R - Hidden files that are not read only
/a!H - Files that are not hidden
/a!H!R - Files that are neither hidden or
read-only
/aHR!S!A - Files with only hidden and read-only
attributes (same as /aHR.)
/a!H /a!S /a!R - Normal files (not Hid AND not Sys AND
not Read-only)
/aHS,SR,HR /a!H,!S,!R - Any two of H, S, R, but not all three
/b Beep - Beeps the system speaker for specified events
/b[F][P][D][E] - Beeps when:
F = a file is found
P = user is prompted
D = program is done running
E = Error
if /b is specified alone beeps will occur for all of the
above
File Finder/Grouper 14 (c) EnGamma
/d Date of File
/dDateRangeStr[[,|']DateRangeStr...] - include only files
matching specified date range
where DateRangeStr is one of the following:
mm/dd/yy - only files matching mm/dd/yy
m1/d1/y1-m2/d2/y2 - only files matching this date range
inclusive
-mm/dd/yy - only files on or before this date
mm/dd/yy- - only files on or after this date
T - Relative: only files with Today's
date
nT-Tm - Relative: n days before TODAY to m
days after today
nT-mT - Relative: n days before TODAY to m
days before TODAY
[Su|Mo|Tu|We|...|Sa] - only file matching specified day of
the week. Can also specify a range in
this way. Use alone or in addition
to above date options.
Asterisks may be used in lieu of mm,dd,yy date elements to
ignore an element. The characters M, D, Y can be used in
lieu of numeric mm, dd, yy elements to use the current month
(M), day (D), year (Y). If some elements are left off
assumptions are made as follows: If an element is left off
and its separator '/' is used then the current value for the
missing element is assumed (e.g. 9//93 -> 9/D/93). If one
separator is missing (i.e., xx/yy) a guess is made based on
the values used for xx and yy: If it is possibly a mm/yy
value, then mm/*/yy (any day) is assumed. If it is possible
a mm/dd value then mm/dd/Y (current year) is assumed. If
it's neither of the above then its a dd/yy value and M/dd/yy
is assumed. Similar guesses are made if both separators are
missing (i.e., xx): If xx is possible a year then */*/yy is
assumed. If xx is possibly a day, then M/dd/Y is assumed.
Date Examples
/d1/1/93 - Files dated 1/1/93
/d1/1/80-12/31/80 - Files having a 1980 date
/d-12/31/92 - Files dated 1992 and earlier
/d1/1/93- - Files later than 1992
/dT - Files dated TODAY
/d6T-T - Files dated in the last 7 days
/d14T-7T - Files dated 7-14 days ago
/dSu - Files dated on a Sunday
/d6T-T /dFr - Files dated last Friday
/d6T-T /dSa-Su - Files dated last Weekend
File Finder/Grouper 15 (c) EnGamma
/dM/D/Y - Files dated today (same as /dT)
/d// - Files dated today
/d1-15 - Files dated 1st-15th of this month
/d80-85 - Files dated between 1980 and 1985
/d7/92-12/92 - Files dated in second half of 1992
/e Execute Command for each find
/e[!][CommandStr] - Execute a command for each found file.
where CommandStr is either:
1. Not specified, in which case the found file itself is
executed. It is assumed the found file is executable,
otherwise the command will not execute.
2. It is a DOS command string including optional Format
Specifiers. The Format Specifiers are the same as those used
for output formatting (see /f description) except that they
must be preceded by a '%' character to distinguish them from
normal characters. For example, to represent the full file
name, %n would be used. Spaces are represented with %_ and
double quotes are represented by %'. These two special
specifiers are required to avoid DOS interpreting the space
and double quotes when you enter them as FFG options. Inside
batch files, two percent signs %% are required to avoid
having DOS interpret the % as a replaceable parameter.
The command is executed from the disk drive and directory of
the found file.
Confirmation - Normally FFG asks the user to confirm whether
the command should be executed. However, if the '!' is
specified, the command will be executed for all found files
without asking the user for confirmation. When confirmation
is on, the user is given the following options:
1. <Y>es - Execute the command
2. <N>o - Skip the command execution
3. <A>ll - Execute the command and turn off subsequent
confirmations
4. <S>hell - Shell to the DOS prompt
5. <ESC> - Quit
Execute Command Examples:
/e - Execute each found file
w/confirmation
/e! - same as above without confirmation
/eREN%_%P\%N%_%F.NEW - => ren d:\path\fname.ext fname.new
/eDEL%_%P\%N - => del d:\path\fname.ext
/eMD%_NEWSBDIR - => md newsbdir (make new subdirectory)
File Finder/Grouper 16 (c) EnGamma
"/eCOPY %P\%N A:" - => copy d:\path\fname.exe a: (note that
by quoting the entire command option,
including the /g, you can avoid
having to use the space Format
Specifier, %_)
/f Format of Output
/fxFormatStr
There are four basic types of output formats supported by
FFG: Columnar output (the default), Packed path, ASCII Comma
delimited and Batch File. Within each of these types there
is much flexibility in defining the precise output (see
Format Strings below). Examples of each are:
1. Columnar Output (/fc, this is the default format)
FILENAME.EXT 12345 1/01/92 23:59 HSRA C:\DIRECT\SUBDIR
2. Packed Path Output (/fp)
C:\DIRECT\SUBDIR\FILENAME.EXT
3. ASCII Comma Delimited Database Output (/f,)
"FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIRECT\SUBDIR\"
4. Batch File Output (/fb)
%1 C:\PATH\FILENAME.EXT %2 %3 %4 %5 %6 %7 %8 %9
Here is a detailed description of the output formatting
options:
/fxFormatStr
x = C Column - Fixed field width columnar output ("NSDTAP"
default)
P Packed - Merge all fields together ("PN" is default)
, Comma - Comma-delimited ASCII database format
B Batch File - Format for batch processing with %1, %2....
S Summary - Summary Control - This option determines
whether a summary report is displayed and
is used independent of the other /f option
switches. The 's' must be followed by '.'
or '!', which have the following meanings:
File Finder/Grouper 17 (c) EnGamma
. - Summary only
! - no summary (good for when you are
redirecting output and don't want the
summary report to be redirected to the
file).
FormatStr is a string composed of Format Specifiers: n, f, e,
s, d, t, a, p, '.', 'r', ':', '\' or '_' where:
f = file First name (e.g. if file is FNAME.EXT then "FNAME"
is displayed)
{ c = Comments/File Descriptive notes
e = file Extension (e.g. if file is FNAME.EXT then ".EXT"
is displayed)
s = Size of file
d = Date of file
t = Time of file
n = Full FileName, including extension (e.g., FNAME.EXT)
a = file Attributes e.g. "H-R-" for a hidden and read-only
file; *ZIP, *ARC for files found in ZIP and ARC files
p = full Path to file, including disk drive (trailing
backslash '\' is excluded for all but Comma-delimited
output)
r = diRectory path without drive (trailing backslash '\' is
excluded for all but Comma-delimited output)
. = period put in output
_ = blank space
' = single quote translated to double quote (/e option
only).
% = to get a % sign (/e option only)
\ = backslash directory separator
: = drive on which file was found (e.g. C:)
0-9 = (meaningful with the /fB option only) inserts a
corresponding DOS .BAT file replaceable parameter %0-%9
(e.g. 1->%1);
Formatting Examples
1. /FCnsdtap displays output in fixed Columns (the default)
as follows:
FILENAME.EXT 12345 1/01/92 23:59 HSRA C:\DIR\SUBDIR
2. /FPpn displays results in a Packed format as follows:
C:\DIR\SUBDIR\FILENAME.EXT
3. /F, displays Comma-delimited results for import into a
database as follows:
"FILENAME.EXT","12345","1/01/92","23:59:00","HSRA","C:\DIR\SUBDIR"
File Finder/Grouper 18 (c) EnGamma
4. /FB1_2_p\n_34_5 provides format for later Batch file
processing:
%1 %2 C:\DIR\SUBDIR\FILENAME.EXT %3%4 %5
5. /FB1_p\n_f.2 > changext.bat creates a batch file with
lines as follows:
%1 C:\DIR\SUBDIR\FILENAME.EXT FILENAME.%2
Which could then be used as follows to change the
extension of all found files to ".NEW":
changext rename NEW
6. /F, /FS! displays comma-delimited output without summary
information.
7. /FS. displays summary information only
/g Go to directory of first found file
When this option is used, FFG changes the current disk drive
and directory to the drive/directory of the first found file.
No other files are found. If the first found file is in an
archive file (/z option used), FFG changes to the disk and
directory of the archive file that contains the found file.
If searching for directories instead of files, FFG changes
into the found directory (makes it the current directory).
/h Hidden directories
/h[.|!]
Hidden directories are searched by default. The following
modifications are possible:
/h - toggle hidden directories search option (i.e, hidden
directories will be skipped since the default is to
search them)
/h. - only hidden directories are searched
/h! - do not search hidden directories
/p## Page at a time
/p[##] pause after every ## lines of output; ## is optional;
This option causes output and searching to pause after ##
lines of screen output. If ## is not specified, the current
File Finder/Grouper 19 (c) EnGamma
screen height will be assumed. If ## is set to 0, there will
be no pause (as though /p were not used at all).
## = blank - pause after one screenful of output.
## = 0 - continuous output - don't pause (this is the
default if /p is not specified)
## = 1 - pause after each found file (useful for
providing an opportunity for user interaction
## = other # - pause after ## lines of output.
/q Quiet - Suppresses all but specified output events
/q[M][T][S][F] - Suppresses output for all but:
M = Spinning meter
T = program title line
S = Output summary
F = Found File
if /q is specified alone all output is suppressed
/r Recursion (subdirectory search)
By default FFG recursively searches all descendent
directories of the starting directory in the directory tree
structure. When the /r option is used only the starting
directory is searched.
/s Size of file
/sSizeRangeStr[[,|']SizeRangeStr...] - include only files
matching specified size
where SizeRangeStr is one of the following:
Size - only files of this size
MinSize-MaxSize - only files within this size range
inclusive
-MaxSize - only files this size or smaller
MinSize- - only files this size or larger
MinSize, Size, MaxSize can use suffixes K, M, G as
abbreviations of 1 Kilobyte, 1 Megabyte, and 1 Gigabyte (e.g.
/s1K-25M)
Size Examples
/s0 - empty files
/s1M- - very large files (>= 1 megabyte)
/s-500 - tiny files (<= 500 bytes)
/s1K-2K - 1024-byte to 2048-byte files
/s-500 /s!0 - smaller than 500 bytes but not empty
/s-500,1M- - tiny or very large files
File Finder/Grouper 20 (c) EnGamma
/t Time of file
/tTimeRangeStr[[,|']TimeRangeStr...] - include only files
matching specified times
where TimeRangeStr is one of the following:
hh:mm:ss - only files matching this time
h1:m1:s1-h2:m2:s2 - only files within this time range
inclusive
-hh:mm:ss - only files on or before this time
hh:mm:ss- - only files on or after this time
nN, Nm - n minutes before now, m minutes after
now - can be used as min or max in
time ranges
Times must be specified using a 24-hour clock (i.e, 23:00
instead of 11:00 PM). Time ranges may span 0:00 (midnight).
Asterisks may be used in lieu of hh,mm,ss time elements to
ignore an element. The characters H, M, S can be used in
lieu of numeric hh, mm, ss elements to use the current hours
(H), minutes (M), seconds (S). If some elements are left off
assumptions are made as follows: If an element is left off
and its separator ':' is not used then '0' is assumed for
that element (e.g., 9 -> 9:00:00). However, if the separator
is specified then '*' is assumed for that element (e.g., 9: -
> 9:*:*)
Time Examples
/t-8:00 - Earlybird files (before 8am)
/t17:00-8:00 - After-hours files
/t17:00- - Evening/night files
/t8:00-17:00 - Workday files
/t10N- /dT - Recent files (within last 10 minutes)
/t9:*:* - Same as range 9:00:00-9:59:59
/t9-10 - Same as 9:00:00-10:00:00
/t9:-10: - Same as 9:*:*-10:*:*
/t:: - Same as *:*:*
/t9:10:
/v[2][4][5] - Change video lines to 25, 43,or 50
2 = 25 lines
4 = 43 lines (EGA and VGA only)(43 even if its VGA)
5 = 50 lines (VGA only)
if /v is specified alone the video mode is toggle between the
25 and the maximum number of lines supported (43 or 50
depending on whether video is EGA or VGA).
File Finder/Grouper 21 (c) EnGamma
/x Exclude Files
/xFileMaskList - exclude all files in FileMaskList,
where FileMaskList is a list of file specs separated by ','
commas. For example, /x*.bat,*.exe,*.com or /x*.[bat,exe,com]
If multiple /x option switches are specified, a file will be
excluded only if it matches all of the separate /x criteria.
For example, /x*boy* /x*dog* will exclude the files
BOYDOG.DAT, DOGBOY.DAT, but not BOYS.DAT or DOGS.DAT.
To exclude files that contain either 'BOY' or 'DOG' in the
name specify: /x*[boy,dog]*, which is equivalent to
/x*boy*,*dog*
/z ZIP and other archive file search
/z[.][ArcExtList] - Search inside archive files.
. = search ONLY inside archive files.
ArcExtList = list of file extensions to treat as archives.
e.g., /zZIP,ARC,LZH,ARJ,COM
Archive Examples
/zZIP - Limits archive search to ZIP files
/zARC,LZH - Limits archive search to ARC and LZH files
/z. - Limits search to only archive files
/$ - Include files containing text the specified text string
/$[=c][=!][=#n]TextCodeStr[=c][[,|'][=!][=#n]TextCodeStr2[=c]...]
Include files containing the string(s) represented by
TextCodeStr. TextCodeStr can be a comma-separated/bracketed set
of alternatives (see syntax for name searching)
TextCodeStr- TextCodeStr is alphnumeric text with optional
imbedded codes for special characters.
=c = Case Sensitivity
The '=c' at the beginning of the option sets
the case-sensitiviy for all alternatives
specified in the option argument. This can be
overridden for a specific alternative by
putting a '=c' in that altnative string. For
example,
/$=cfirst,second=c,third
File Finder/Grouper 22 (c) EnGamma
would match files containing "first" (case
sensitive) or "second" (ignoring case), or
"third" (case sensitive).
If mixed case it used in a text string, it is
taken to imply that the search should be case-
sensitive, regardless of whether '=c' is
specified.
=! = Exclude file if TextString found.
=#n = Search only first 'n' bytes of file
=Code = If within TextString '=' is followed by a 1-3
digit numeric code with a value between 1 and
255, the character corresponding to that
numeric code will be matched. This enables
specifying control codes and any other codes
that might be otherwise not be allowed by DOS
on the commad line. For example,
FFG *.exe /$=cPK=3=4
would search EXE files for self-extracting
PKZip files. The above /$ option example is
equivalent to /$=cPK=003=004. The leading
zeroes are necessary only when you want to
follow the code with numeric text.
Special characters - Some characters are interpreted by the DOS
command line interpreter and if used would give undesirable
results. These include "><|", the DOS redirection and pipe
symbols. One way around this problem is to specify the codes for
these characters using '=' as described above. An easier way is
to use the following alternatives which are interpreted by FFG:
=) = for '>'
=( = for '<'
=I or =i = for '|'
=Q or =q = for '"' (Q for quotes)
=: = for ';'
=_ = for ' ' (blank)(to avoid quoting string)
== = for '=' (to override special function of =)
Also, since the characters ",'[]" have special meaning to FFG in
specifying alternatives (as in /$[basket,foot,base]ball), if they are
to be part of the search text they must be preceded with an '='
symbol. For example, /$Bill's is interpreted incorrectly as
"Bill" OR "s", but /$Bill='s is interpreted correctly as "Bill's".
Text String Search Examples
File Finder/Grouper 23 (c) EnGamma
/$simple - finds files containing 'simple' regardless of
case (same as /$SIMPLE)
/$=csimple - finds files containing 'simple' - lower case
only
/$T[h,]om - finds files containing 'Tom' or 'Thom' - case
sensitive
/$me /$you - finds files containing both 'me' and 'you'
regardless of case
/$T,=!M - finds files that either contain a 'T' or don't
contain an 'M', case-insensitive.
/$=#4=255WPC - finds WordPerfect Corporation product data
files; searches only first 4 bytes of file
Efficiency Note: Searching the contents of a file is much slower
than searching by name, date, time, size,
attributes. Therefore, to improve the speed of
a text search it helps to filter out files
based on these other criteria before searching
the file for text. FFG will do this filtering
first if you specify other criteria. The more
narrow the other criteria are, the greater the
speed improvement will be. A particularly
important criteria is file size. If you put an
upper limit on the size of the files, it will
save scanning large files.
Another, important way to improve speed is to
use the '=#n' control sequence to limit the
text scan to the first 'n' bytes of the file.
Of course you need to know approximately how
close the data you are searching for is to the
start of the file. One of the above examples,
uses this technique.
File Finder/Grouper 24 (c) EnGamma
Bugs/Known Deficiencies/Future Improvements
1. Further date options are planned such as /dLASTYEAR
2. A date-time option is planned (i.e., /t12/1/93@13:47-)
3. A more general way of specify logical expressions of search
criteria is planned, which will allow mixing and matching
different criteria.
4. An option to use regular expressions for text searches or
name searches or both is planned.
File Finder/Grouper 25 (c) EnGamma
Miscellaneous
1. Options can be specified using either '/' or '-' as command
line switch characters.
2. FFG is not case sensitive, but future releases may
distinguish letter case as new features are added. Use of
lower case letters is recommended.
3. During a search the following keys have a special function:
<ESC> - Aborts/interrupts the search
<G> - Goes to the disk and directory of the last
found file. If searching for directories,
the found directory will be made current.
<S> - Skips to the next disk drive
<B> - Causes a beep when search complete
any other key - Pauses the search operation
4. While searching, FFG displays the drive currently being
searched and indicates progress with a spinning run meter.
The meter is updated one increment each time a new directory
or a new archive file is searched. When the meter slows, it
is indicative of either a directory with many files or an
archive file.
5. Summary Report - FFG displays a summary report of the search
operation. It includes:
- Total bytes inside all found files.
- Disk space occupied by found files including unused
space due to the disk cluster/block size. If the
file is in an archive, then there is no adjustment
made for cluster size.
- Number of directories searched.
- Number of directories in which files were found
- Name/Date/Time/Size/Attribute/Text criteria used
- Number of archive files searched
- Number of archive files in which files were found
6. Logical Combination of Search Criteria - Currently, search
criteria of different types (e.g., size and date are
different types) are combined in a logical AND expression.
That is, for a file to match it must match all criteria.
However, within a single command line option of one type
(e.g., /d), multiple comma-separated criteria are combined in
a logical OR expression.
7. One Floppy Systems - When a floppy drive is specified to be
searched (e.g., ab*:FILENAME or ab:FILENAME or a:FILENAME or
b:FILENAME), FFG will search the system's only floppy drive
regardless of whether one or both floppies were specified.
File Finder/Grouper 26 (c) EnGamma
The summary will report whichever logical drive letter DOS
was using at the time to refer to the drive. (This might be
B: if, prior to running FFG, you tried accessing floppy drive
B:.)
8. FFG can be renamed. FFG will recognize the new name and
display it in the usage screen if you are using DOS 3.0 or
later.
9. Conventions - Several options attach special significance to
'!' and to '.'. Generally, '!' is used to represent
"negation"/"logical not"/"turn off". Generally '.' is used
to represent "only"/"these period"/"no others". The '='
symbol will be used as a general purpose 'escape' character
to indicate that the subsequent character or characters are
to be treated differently than normal. For example, '=c' is
used to indicate case-sensitivity in a text search.
10. Commas and batch files - As shown in several of the example
batch files, FFG can be used in batch files to build some
special or general purpose utilities. However, there is an
annoying problem with encapsulating FFG in a batch file that
arises because of the use of the comma ',' as a delimiter for
search criteria. The problem arises because when a comma is
used in an argument to a batch file command, DOS interprets
it just like a space and it is not passed on to FFG. To
sidestep this problem, FFG accepts alternatives to the comma
as follows:
For Name criteria (including /x option) you can use a
slash "/" instead of the comma.
For date, time, size, day-of-week, attribute, and
text criteria, you can use a single quote "'".
Note that there is no problem using commas inside a batch
file; the problem arises when including commas in a
command line argument to a batch file.
11. Use of spaces in command line options - Generally spaces and
semicolons are not allowed because they are used by DOS to
delimit the command-line options. To enable spaces to be
used where legal, you can enclose the entire command line
option (including the slash/dash and the switch character) in
double qoutes. For example, use "/$Find this in a file" to
find the string "Find this in a file". Note that /$"Find
this in a file" will not work. It will be interpreted as two
options: '/$' and the remainder.
12. FFG was developed using Borland C++ 3.1.
File Finder/Grouper 27 (c) EnGamma
System Requirements
Operating System/Environment
FFG requires DOS version 3.1 or later. FFG will also run under
Microsoft Windows in a DOS window.
Video
Although not required, if the system has EGA or VGA video, FFG
will be able to display more lines of information on the screen
at once using the /v (Video) option.
System Memory
FFG uses Borland's VROOMM (Virtual Runtime Object-Oriented Memory
Management) feature to provide many features while making most
efficient use of system memory. Expanded memory (EMS) is used,
if detected, to improve performance. With low system memory FFG
will still operate, but performance may be degraded and some
infrequent operations may not be possible. If there is low
conventional memory, but sufficient expanded memory, there may be
no noticable performance degradation. In any case, if low system
memory is detected, FFG displays a warning message:
WARNING! Low memory. Program may operate slowly and/or terminate
prematurely.
FFG requires a minimum of about 125K of conventional system
memory. Most common searches and operations can be conducted
without any noticable differences. Performance and feature
availability is maximized when there is greater than
approximately 160K of conventional memory. If during operation,
FFG is unable to obtain sufficient memory to continue, it will
terminate with the message:
ERROR! Insufficient memory to continue.
If there is insufficient memory for FFG to execute (less than 125K),
one of the following error messages will appear depending on the
available memory:
Cannot Execute FFG.EXE
Abnormal Program Termination .
ERROR! Insufficient memory. 125K of available conventional RAM required.
File Finder/Grouper 28 (c) EnGamma